package main

import "fmt"

func myFunc(arg interface{}) {
	// fmt.Println("myFunc 被调用")
	// fmt.Println(arg)

	// interface{}为接收参数类型，则提供了一个  .(类型)的方式判断传入参数类型
	value, ok := arg.(string)
	if ok {
		fmt.Println("是字符串类型")
		fmt.Printf("%v \n",value)
		fmt.Println("=================")
	} else {
		fmt.Printf("类型为：%T \n",arg)
		fmt.Println("=================")
	}
}

type book struct {
	auth string
}

func main() {
	book := book{"golang"}
	// 接参为interface，可以传入任意类型
	myFunc(book)
	myFunc(100)
	myFunc("str")
	myFunc(3.14)

}
